package com.diaohaiwen.common.enums;

/**
 * @author 刁海文
 * @since 2023/6/11 16:32
 * @Remark Response 返回状态枚举类
 */
public enum StatusCodeEnum {
    /**
     * 成功
     */
    SUCCESS(0, "SUCCESS"),
    /**
     * 业务上的异常，如表单校验失败等等可使用此枚举
     */
    ERROR(500, "ERROR"),
    /**
     * 数据格式错误
     */
    DATA(101, "%s"),

    AUTH(301, "%s"),
    /**
     * 系统运行时产生的异常
     */
    EXCEPTION(500, "系统异常: %s");

    /**
     * 状态码
     */
    public final int status;

    /**
     * 备注，描述
     */
    public final String describe;

    StatusCodeEnum(int status, String describe) {
        this.status = status;
        this.describe = describe;
    }

    /**
     * 拼接消息
     *
     * @param args 参数
     * @return {@link this#describe :args}
     */
    public String filterAttr(Object... args) {
        return String.format(describe, args);
    }


}
